package com.xyd.wechat.vo;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.Data;

import java.io.Serializable;

@JacksonXmlRootElement(localName = "xml")
@Data
public class Message implements Serializable, Cloneable {

    private static final long serialVersionUID = 1L;
    /**
     * 开发者微信号
     */
    @JacksonXmlProperty(localName = "ToUserName")
    private String toUserName;
    /**
     * 发送方帐号（一个OpenID）
     */
    @JacksonXmlProperty(localName = "FromUserName")
    private String fromUserName;
    /**
     * 消息创建时间 （整型）
     */
    @JacksonXmlProperty(localName = "CreateTime")
    private Long createTime;
    /**
     * 消息类型
     */
    @JacksonXmlProperty(localName = "MsgType")
    private String msgType;
    /**
     * 事件类型，SUBSCRIBE(订阅)、unsubscribe(取消订阅)
     */
    @JacksonXmlProperty(localName = "Event")
    private String event;

    /**
     * 事件KEY值
     */
    @JacksonXmlProperty(localName = "EventKey")
    private String eventKey;

    /**
     * 文本消息内容
     */
    @JacksonXmlProperty(localName = "Content")
    private String content;
    /**
     * 消息id，64位整型
     */
    @JacksonXmlProperty(localName = "MsgId")
    private Long msgId;
    /**
     * 通过素材管理中的接口上传多媒体文件，得到的id
     */
    @JacksonXmlProperty(localName = "MediaId")
    private String mediaId;

    /**
     * 微信：WX；官网：PC；手机网页：H5；移动端：APP
     */
    @JsonIgnoreProperties
    private String source;

    @Override
    public Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}
